package com.harry.hr.entity.system;

import java.util.Date;
import java.util.HashSet;
import java.util.Set;


@SuppressWarnings("serial")
public class User implements java.io.Serializable {
	/**
	 * 用户编号
	 */
	private int id;
	/**
	 * 用户名
	 */
	private String name;
	/**
	 * 姓名
	 */
	private String trueName;
	/**
	 * 密码
	 */
	private String password;
	/**
	 * 该记录创建/修改时间
	 */
	private Date startTime;
	/**
	 * 拥有的角色
	 */
	private Set<Role> roles = new HashSet<Role>();
	
	/**
	 * 基本构造函数
	 */
	public User(){}
	
	/**
	 * 构造函数(用户编号)
	 * @param id 用户编号
	 */
	public User(int id)
	{
		this.id=id;
	}
	/**
	 * 构造函数(真实姓名)
	 * @param trueName 真实姓名
	 */
	public User(String trueName)
	{
		this.trueName=trueName;
	}
	/**
	 * 构造函数(用户名，密码)
	 * @param name 用户名
	 * @param password 密码
	 */
	public User(String name,String password)
	{
		this.name=name;
		this.password=password;
	}
	
	/**
	 * 构造函数(全属性)
	 * @param id 用户编号
	 * @param name 用户名
	 * @param trueName 真实姓名
	 * @param password 密码
	 * @param startTime 该记录创建/修改时间
	 */
	public User(int id,String name,String trueName,String password,Date startTime)
	{
		this.id=id;
		this.name=name;
		this.trueName=trueName;
		this.password=password;
		this.startTime=startTime;
	}
	
	/**
	 * 获取用户编号
	 * @return 用户编号
	 */
	public int getId() {
		return id;
	}
	/**
	 * 设置用户编号 
	 * @param id 用户编号
	 */
	public void setId(int id) {
		this.id = id;
	}
	/**
	 * 获取用户名
	 * @return 用户名
	 */
	public String getName() {
		return name;
	}
	/**
	 * 设置用户名 
	 * @param name 用户名
	 */
	public void setName(String name) {
		this.name = name;
	}
	/**
	 * 获取真实姓名
	 * @return 姓名
	 */
	public String getTrueName() {
		return trueName;
	}
	/**
	 * 设置真实姓名
	 * @param trueName 姓名
	 */
	public void setTrueName(String trueName) {
		this.trueName = trueName;
	}
	/**
	 * 获取密码MD5摘要
	 * @return 密码MD5摘要
	 */
	public String getPassword() {
		return password;
	}
	/**
	 * 设置密码MD5摘要
	 * @param password 密码MD5摘要
	 */
	public void setPassword(String password) {
		this.password = password;
	}
	/**
	 * 获取该记录创建/修改时间
	 * @return 该记录创建/修改时间
	 */
	public Date getStartTime() {
		return startTime;
	}
	/**
	 * 设置该记录创建/修改时间
	 * @param startTime 该记录创建/修改时间
	 */
	public void setStartTime(Date startTime) {
		this.startTime = startTime;
	}
	
	/**
	 * 获取角色列表
	 * @return 角色列表
	 */
	public Set<Role> getRoles() {
		return roles;
	}
	/**
	 * 设置角色列表
	 * @param menus 角色列表
	 */
	public void setRoles(Set<Role> roles) {
		this.roles = roles;
	}
	@Override
	public String toString(){
		return "{["+id+"],["+name+"],["+trueName+"],["+password+"]}";
	}
	
}
